package com.app.utils;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v7.app.NotificationCompat;

import com.app.application.QXApplication;

import phone.qyg.com.qyg.R;
import phone.qyg.com.qyg.activity.MsgDetialsActivity;
import phone.qyg.com.qyg.model.Message;

import static android.content.Context.NOTIFICATION_SERVICE;

/**
 * 作者：lblbh on 2017/12/28 17:21
 * 邮箱：lanbuhan@163.com
 * 功能：发送通知工具类
 */

public class NotificationUtil {

    static NotificationManager manger;

    public static void sendNotification(Context ct, Message msg){

        if(null == msg)
            return;

        if(null == manger){
            manger = (NotificationManager) QXApplication.getContext().getSystemService(NOTIFICATION_SERVICE);
        }

//        int NOTIFICATION_ID = (int)(Math.random()*10000);
        SystemPrintl.systemPrintl("我在执行消息请求--->>>"+msg.id);
        //为了版本兼容  选择V7包下的NotificationCompat进行构造
        NotificationCompat.Builder builder = new NotificationCompat.Builder(ct);
        //Ticker是状态栏显示的提示
        builder.setTicker("消息通知");
        //第一行内容  通常作为通知栏标题
        builder.setContentTitle("应用通知消息");
        //第二行内容 通常是通知正文
        String content = msg.content;
        if(CommonUtil.isRequestStr(content) && content.length()>30){
            content = content.substring(0,30);
        }
        builder.setContentText(content);
        //第三行内容 通常是内容摘要什么的 在低版本机器上不一定显示
//        builder.setSubText("这里显示的是通知第三行内容！");
        //ContentInfo 在通知的右侧 时间的下面 用来展示一些其他信息
        //builder.setContentInfo("2");
        //number设计用来显示同种通知的数量和ContentInfo的位置一样，如果设置了ContentInfo则number会被隐藏
//        builder.setNumber(2);
        //可以点击通知栏的删除按钮删除
        builder.setAutoCancel(true);
        //系统状态栏显示的小图标
        builder.setSmallIcon(R.mipmap.ic_launcher);
        //下拉显示的大图标
        builder.setLargeIcon(BitmapFactory.decodeResource(QXApplication.getContext().getResources(),R.mipmap.ic_launcher));
        Intent intent = new Intent(QXApplication.getContext(),MsgDetialsActivity.class);

        //添加数据 传递数据使用
        Bundle bundle = new Bundle();
        bundle.putParcelable(TransformController.ChangeKEY.BUNDLE_KEY, (Parcelable) msg);
        intent.putExtra(TransformController.ChangeKEY.INTENT_KEY, bundle);

        PendingIntent pIntent = PendingIntent.getActivity(QXApplication.getContext(),msg.id,intent,0);
        //点击跳转的intent
        builder.setContentIntent(pIntent);
        //通知默认的声音 震动 呼吸灯
        builder.setDefaults(NotificationCompat.DEFAULT_ALL);
        Notification notification = builder.build();
        manger.notify(msg.id,notification);
    }
}
